from building import *

cwd = GetCurrentDir()

# add the general drivers.
src = Split("""
drv_uart.c
""")

CPPPATH = [cwd]
CPPDEFINES = []

if GetDepend('BOARD_USING_QSPIFLASH'):
    src += ['drv_flexspi_nor.c'] 

if GetDepend('BOARD_USING_HYPERFLASH'):
    src += ['drv_flexspi_hyper.c'] 
    
# add sdram driver code 
if GetDepend('RT_USING_SDRAM'):
    src = src + ['drv_sdram.c'] 

# add pin driver code
if GetDepend('RT_USING_PIN'):
    src += ['drv_pin.c']

# add rtc driver code
if GetDepend('RT_USING_RTC_HP'):
    src += ['drv_rtc.c'] 

# add spibus driver code
if GetDepend('RT_USING_SPI'):
    src += ['drv_spi_bus.c']

# add spi flash driver code
if GetDepend('RT_USING_SPI_FLASH'):
    src += ['drv_spi_flash.c']

# add i2cbus driver code
if GetDepend('RT_USING_I2C'):
    src += ['drv_i2c.c']

# add lcd driver code
if GetDepend('RT_USING_LCD'):
    src += ['drv_lcd.c']

# add sdio driver code
if GetDepend('RT_USING_SDIO'):
    src += ['drv_sdio.c']

# add usb device driver code
if GetDepend('RT_USING_USB_DEVICE'):
    src += ['drv_usbd.c']
    src += Glob('usb/device/*.c')
# add usb phy driver code
if GetDepend('RT_USING_USB_DEVICE'):
    src += Glob('usb/phy/*.c')
    CPPDEFINES += ['ENDIANNESS']

if GetDepend('BOARD_RT1050_EVK'):
    if GetDepend('RT_USING_LWIP'):
        src += ['drv_eth.c', 'fsl_phy.c']
        CPPDEFINES += ['FSL_FEATURE_PHYKSZ8081_USE_RMII50M_MODE']
        
if GetDepend('BOARD_RT1050_FIRE') and GetDepend('RT_USING_LWIP'):
    src += ['drv_eth.c', 'fsl_phy.c']

if GetDepend('BOARD_RT1050_ATK') and GetDepend('RT_USING_LWIP'):
    src += ['drv_eth.c', 'fsl_phy.c', 'drv_pcf8574.c']
    
if GetDepend('RT_USING_AUDIO'):
    src += ['drv_codec.c', 'fsl_wm8960.c']
    
if GetDepend('PKG_USING_GUIENGINE'):
    src += Glob('touch/*.c')

group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES=CPPDEFINES)

Return('group')
